home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
bnchmark.arc
/
BMARK.NEC
Wrap
Text File
|
1985-12-08
|
16KB
|
464 lines
12:25:31 12/8/1985
I recently decided (for myself, at least) to settle the question of how
much speed increase one could expect from the addition of a NEC V series
chip to an IBM PC (or compatible) computer. I was mainly concerned with
the type of operations that I might do on a regular basis. For the sake of
completeness, I included some of the BYTE benchmarks.
All tests were performed on the same computer (AT&T 6300), the same hard
drive (Syquest 306R - 5 meg removable), with the same ram resident software
loaded. The hard drive was returned to original condition after any test
that wrote to the drive.
Timings were kept using a program called TIMER.COM from Leroy Casterline.
It seems to be accurate to .05 seconds.
ARCHIVE TEST
Using ARC version 4.5, 19 files with a total size of 1,018,271 bytes were
archived. Test files follow:
. <DIR> 06Dec85 21:54 PIBTERM .007 4608 09Nov85 03:41
.. <DIR> 06Dec85 21:54 PIBTERM .COM 37592 09Nov85 03:42
APP2_1 .EXE 41380 17Jun85 14:46 PIBTERM .FON 10001 08Oct85 03:30
APPFILE .DOC 6005 19Jun85 18:37 QMOD112 .000 50688 16Nov85 12:03
PIBTERM .000 80128 09Nov85 03:35 QMOD112 .COM 45811 16Nov85 12:04
PIBTERM .001 25088 09Nov85 03:20 QMOD112 .DOC 54400 17Nov85 16:21
PIBTERM .002 26624 09Nov85 03:26 REFLEX .EXE 267420 15Jun85 17:04
PIBTERM .003 10752 09Nov85 03:32 REFLEX2 .EXE 260715 16Oct85 14:58
PIBTERM .004 15616 09Nov85 03:31 XPC2_1 .COM 39842 19Jun85 13:50
PIBTERM .005 20736 09Nov85 03:42 XPCFILE .DOC 9089 19Jun85 18:37
PIBTERM .006 11776 09Nov85 03:40
1018271 Bytes in 21 File(s); 1060864 bytes free.
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 1 32:49.35 32.49.35
NEC V30 1 27:23.26 27.23.26
INCREASE DUE TO NEC V30 CHIP -- 16.56%
LUU (LIBRARY AND SQUEEZE) TEST
Using LUU 2.1, the same 19 files with a total size of 1,018,271 bytes were
libraried and squeezed.
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 2 5:25.22,5:25.0 5:25.11
NEC V30 3 5:02.64,5:05.44,5:06.71 5:04.93
INCREASE DUE TO NEC V30 CHIP -- 6.21%
AZTEC C COMPILE, ASSEMBLE, AND LINK USING A MAKE FILE
A 21k .exe file was generated from 10 independently compiled and assembled
modules. All environmental variables remained constant throughout the
tests.
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 2 2:55.98,2:54.72 2:55.35
NEC V30 2 2:49.5,2:47.97 2:48.735
INCREASE DUE TO NEC V30 CHIP -- 3.77%
DBASE III INDEX TEST
Using version 1.1 of Ashton Tate's Dbase III, a 1,170,579 byte .dbf file
was indexed on a concatenated string using the following program:
? time()
use monthly
index on str(tag,7,4)+dtoc(date_comp) to test
? time()
close data
The structure for the monthly file follows:
Structure for database : monthly.dbf
Number of data records : 15000
Date of last update : 12-06-1985
Field Field name Type Width Dec
----- ---------- ---- ----- ---
1 TAG Numeric 7 4
2 DATE_COMP Date 8
3 PARTS Numeric 6 2
4 PART_TYPE Character 2
5 TAX Numeric 5 2
6 LABOR Numeric 6 2
7 LABR_TYPE Character 2
8 SERV_SUPL Numeric 5 2
9 SHIPPING Numeric 5 2
10 SHIP_TYPE Character 2
11 OTHER Numeric 5 2
12 OTHR_TYPE Character 2
13 TECH Numeric 3 0
14 DELVR_TO Numeric 2 0
15 FLAG Character 2
16 BRAND Character 12
17 UNIT_TYPE Character 3
** Total ** 78
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 1 1:36:49.0 1:36.49.0
NEC V30 1 1:32:58.0 1:32:58.0
INCREASE DUE TO NEC V30 CHIP -- 3.98%
BASIC COMPILER TEST
Using IBM's Basic Compiler version 1.0, RBBS5A (w/B9 merges) was compiled
as per the instructions in the documentation for the B9 merges from Mark
Seiden.
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 2 3:25.64,3:23.94 3:24.79
NEC V30 3 3:09.66,2:59.5,3:14.5 3:07.88
INCREASE DUE TO NEC V30 CHIP -- 8.25%
LINK TEST
Using the IBM Personal Computer Linker version 2.2, the RBBS .obj file was
linked with the supporting modules to create an .exe file.
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 2 2:03.75,2:03.97 2:03.86
NEC V30 3 1:48.48,1:47.71,1:47.98 1:48.06
INCREASE DUE TO NEC V30 CHIP -- 12.76%
SIEVE TEST IN C
The following sieve test was taken from the Byte Benchmarks and the source
code follows:
/*
* UNIX Operating Sytem Implementation Test #4
*
* "Benchmarking UNIX Systems", BYTE magazine August 1984
*
* No benchmark suite would be complete without the ever-popular
* sieve benchmark. It is a good test of compiler efficiency and
* CPU throughput. Below is a sieve benchmark as presented in the
* January 1983 issue of BYTE, with some other minor changes: Register
* declarations have been added, and some unnecessary (from our
* standpoint) printf() statements removed.
*
* Instructions:
* Compile by: cc -O -s -o sieve sieve.c
*
* The -O option says to use the optimizer.
* The -s option says to strip the namelist from the
* object file after linking.
* The -o option says to place the oblect file in the file
* specified by the next argument.
*
* Time by: /bin/time sieve
*
* Results:
* In the past, the elapsed time has been used, since most
* operating systems can measure real time. Actually, user
* time is a better value.
*
*/
/* Eratosthenes Sieve Prime Number program in C */
#define TRUE 1
#define FALSE 0
#define SIZE 8190
char flags[SIZE + 1];
main() {
register int i, prime, k, count, iter;
/* printf("10 iterations\n"); */ /* We don't need this */
for (iter = 1; iter <= 10; iter++) { /* do program 10 times */
count = 0; /* prime counter */
for (i = 0; i <= SIZE; i++) /* set all flags TRUE */
flags[i] = TRUE;
for (i = 0; i <= SIZE; i++) {
if (flags[i]) { /* found a prime */
prime = i + i + 3; /* twice index + 3 */
/* printf("\n%d", prime); */ /* nor this */
for (k = i + prime; k <= SIZE; k += prime)
flags[k] = FALSE; /* kill all multiples */
count++; /* primes found */
}
}
}
/* printf("\n%d primes.",, count); */ /* primes found on tenth pass */
}
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 4 4.6,4.7,4.1,4.1 4.375
NEC V30 4 3.41,3.41,3.35,3.30 3.3675
INCREASE DUE TO NEC V30 CHIP -- 23.03%
EMPTY LOOP TEST IN C
Another Byte test with the following source code:
/*
* UNIX Operating Sytem Implementation Test #7
*
* "Benchmarking UNIX Systems", BYTE magazine August 1984
*
* This program tests long integer incrementation. It is
* taken from USENET news article "megatest.186".
*
* Instructions:
* Compile by: cc -O -s -o loop loop.c
*
* The -O option says to use the optimizer.
* The -s option says to strip the namelist from the
* object file after linking.
* The -o option says to place the oblect file in the file
* specified by the next argument.
*
* Time by: /bin/time loop
*
* Results:
* Altough not very significant, it does say something about the
* speed of the processor, since the compiler would hopefully
* compile the "i++" as an INCR instruction and not an ADD
* instruction. The benchmark is presented here for historical
* reasons.
*
*/
main() {
long i;
for (i = 0; i < 1000000; i++)
;
printf("Done\n");
}
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 4 16.37,16.37,16.36,16.31 16.3525
NEC V30 4 14.23,14.23,14.17,14.23 14.215
INCREASE DUE TO NEC V30 CHIP -- 13.07%
FCALL1 - FUNCTION CALL IN C
Another Byte Benchmark with the source code that follows:
/*
* UNIX Operating Sytem Implementation Test #3
*
* "Benchmarking UNIX Systems", BYTE magazine August 1984
*
* This program enables precise arithmetic calculations of user function
* overhead by subtracting the execution user time when compiled without
* using a function from execution user time using a function.
*
* Instructions:
* Compile by: cc -O -DEMPTY -s -o fcalle fcall.c
* and
* cc -O -DASSIGN -s -o fcalla fcall.c
*
* The -O option says to use the optimizer.
* The -s option says to strip the namelist from the
* object file after linking.
* The -o option says to place the oblect file in the file
* specified by the next argument.
*
* Time by: /bin/time fcalle
* and
* /bin/time fcalla
*
* Results:
* Since the user time is more accurate than the real time
* and since system time effectively does not contribute to
* the real time number, we can use the difference between
* the user times in seconds as an accurate numerical account
* of the function call overhead.
*
*/
#define TIMES 50000
main()
/* the first way of doing things - use a function call */
#ifdef EMPTY
{
register unsigned int i, j;
for (i = 0; i < TIMES; i++)
j = empty(i);
}
/* the empty function */
empty(k)
register unsigned int k;
{
return(k);
}
#endif
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 4 1.82,1.81,1.75,1.76 1.785
NEC V30 4 1.70,1.70,1.70,1.71 1.7025
INCREASE DUE TO NEC V30 CHIP -- 4.62%
FCALL2 - FUNCTION CALL IN C ANOTHER WAY
Yet another Byte Benchmark -- source follows:
/*
* UNIX Operating Sytem Implementation Test #3
*
* "Benchmarking UNIX Systems", BYTE magazine August 1984
*
* This program enables precise arithmetic calculations of user function
* overhead by subtracting the execution user time when compiled without
* using a function from execution user time using a function.
*
* Instructions:
* Compile by: cc -O -DEMPTY -s -o fcalle fcall.c
* and
* cc -O -DASSIGN -s -o fcalla fcall.c
*
* The -O option says to use the optimizer.
* The -s option says to strip the namelist from the
* object file after linking.
* The -o option says to place the oblect file in the file
* specified by the next argument.
*
* Time by: /bin/time fcalle
* and
* /bin/time fcalla
*
* Results:
* Since the user time is more accurate than the real time
* and since system time effectively does not contribute to
* the real time number, we can use the difference between
* the user times in seconds as an accurate numerical account
* of the function call overhead.
*
*/
#define TIMES 50000
main()
#ifdef ASSIGN
/* the second way of doing things - without a function call */
{
register unsigned int i, j;
for (i = 0; i < TIMES; i++)
j = i;
}
#endif
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 4 .66,.66,.66,.66 .66
NEC V30 4 .60,.54,.61,.55 .575
INCREASE DUE TO NEC V30 CHIP -- 12.88%
CALC TEST IN BASIC (compiled)
Another Byte Benchmark -- source follows:
5 REM: the calculation benchmark
10 NR = 5000
20 DEFSNG A-Z
30 A = 2.71828
40 B = 3.14159
50 C = 1
60 FOR I = 1 TO NR
70 C = C * A
80 C = C * B
90 C = C / A
100 C = C / B
110 NEXT I
120 PRINT "done"
130 PRINT "error = "; C - 1
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 4 5.76,5.66,5.72,5.66 5.7
NEC V30 5 4.39,4.45,4.34,4.34,4.34 4.372
INCREASE DUE TO NEC V30 CHIP -- 23.3%
SIEVE TEST IN BASIC (compiled)
Another Byte Benchmark -- source follows:
5 REM: the sieve benchmark
10 SIZE = 7000
20 DIM FLAGS(7001)
30 PRINT "start one iteration"
40 COUNT = 0
50 FOR I = 0 TO SIZE
60 FLAGS(I) = 1
70 NEXT I
80 FOR I = 0 TO SIZE
90 IF FLAGS(I) = 0 THEN 170
100 PRIME = I + I + 3
110 K = I + PRIME
120 IF K > SIZE THEN 160
130 FLAGS(K) = 0
140 K = K + PRIME
150 GOTO 120
160 COUNT = COUNT + 1
170 NEXT I
180 PRINT "done: "; COUNT; " primes found"
CHIP # TEST RUNS TIMINGS (HRS:MINS:SECS.XX) AVERAGE
INTEL 8086 4 9.18,9.6,9.1,9.6 9.37
NEC V30 4 8.24,8.13,8.13,8.13 8.1575
INCREASE DUE TO NEC V30 CHIP -- 12.94%
SUMMARY
The final average results over 12 tests show a net increase in speed
attributable to the NEC V series chip of 11.78%
Should you install the chip in your computer? Take a close look at the
individual test results. If an operation you perform often would benefit
from the chip, then by all means, add it to your system. I am told that
Lotus and other spreadsheets will recalculate somewhere between 20% and 40%
faster on the NEC chip. I could not test this claim.
I found it very interesting that the LUU program took only 5 mins+ to lib
and squeeze 1.1 megs, but the ARC program took 27-32 minutes. The ARC'd
file showed a space savings of only some 29K. Not such a good return for
the extra 25 minutes.
All the C programs were compiled with Aztec C version 2.20d.
These tests performed courtesy of TERRAPIN STATION BBS in Minneapolis, MN.
A BBS for programmers and technically oriented folk!
24 hours a day -- 1200/2400
612/623-0152
Beta test site and authorized dealer for MultiTech modems.
We sell the NEC chips and assorted other esoteric hardware and software.
See bulletin #8 when you log in.
Howard Ekman
Sysop -- Terrapin Station BBS